جزوه · فصل دوم · جلسه ۲۵ · روش‌های نصب Snap و AppImage ← بازگشت به فهرست
📘 فصل دوم · جلسه ۲۵ روش‌های دیگر نصب: Snap و AppImage
📅 تاریخ: سه‌شنبه، ۲۰ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat

▍ مقدمه

در کنار ابزارهای سنتی مانند apt و dnf، دو روش مدرن و محبوب برای نصب برنامه در لینوکس وجود دارد: Snap و AppImage. این روش‌ها مشکلات نصب سنتی مانند وابستگی‌های پیچیده را حل می‌کنند و برنامه‌ها را به صورت مستقل از سیستم‌عامل اجرا می‌کنند.

🔑 چرا روش‌های جدید؟

در روش سنتی، هر برنامه به کتابخانه‌های خاصی نیاز دارد. اگر نسخه کتابخانه‌ها با سیستم شما هماهنگ نباشد، برنامه نصب نمی‌شود. Snap و AppImage این مشکل را با بسته‌بندی همه وابستگی‌ها در یک فایل حل کرده‌اند.

▍ Snap: نصب آسان و خودکار

Snap یک سیستم بسته‌بندی و توزیع نرم‌افزار است که توسط شرکت Canonical (سازنده اوبونتو) ساخته شده است. برنامه‌های Snap در یک محفظه (Sandbox) اجرا می‌شوند و از سیستم جدا هستند.

📌 ویژگی‌های اصلی Snap:
  • خودکار: برنامه‌ها به‌طور خودکار به‌روز می‌شوند.
  • ایمن: برنامه‌ها در محیط ایزوله (Sandbox) اجرا می‌شوند و به سیستم دسترسی کامل ندارند.
  • مستقل: روی همه توزیع‌های لینوکس کار می‌کنند.
  • قابل بازگشت: می‌توانید به نسخه قبلی برنامه برگردید.

• نصب Snap در دبیان (کالی)

┌──(ya3in㉿kali)-[~] └─$ sudo apt update └─$ sudo apt install snapd

توضیح: ابتدا لیست بسته‌ها به‌روز می‌شود، سپس snapd (سرویس Snap) نصب می‌شود. [citation:3][citation:7]

⚠️ نکته مهم:

پس از نصب snapd، بهتر است سیستم را ریستارت کنید یا از سیستم خارج و دوباره وارد شوید تا مسیرهای Snap به‌درستی تنظیم شوند. [citation:3]

• دستورات اصلی Snap

دستور توضیح
snap find [keyword] جستجوی برنامه در فروشگاه Snap
sudo snap install [package] نصب یک برنامه Snap
sudo snap remove [package] حذف یک برنامه Snap
sudo snap refresh به‌روزرسانی همه برنامه‌های Snap
snap list نمایش لیست برنامه‌های نصب‌شده
snap info [package] نمایش اطلاعات یک برنامه
sudo snap refresh --time مشاهده زمان به‌روزرسانی خودکار

• مثال عملی

┌──(ya3in㉿kali)-[~] └─$ snap find vlc Name Version Publisher Notes Summary
vlc 3.0.20 videolan✓ - VLC media player
└─$ sudo snap install vlc vlc 3.0.20 from Videolan (videolan✓) installed

توضیح: جستجوی برنامه vlc در فروشگاه Snap و سپس نصب آن.

▍ AppImage: برنامه‌های قابل حمل (Portable)

AppImage یک روش نصب است که برنامه را به صورت یک فایل اجرایی واحد ارائه می‌دهد. این فایل شامل همه وابستگی‌های برنامه است و بدون نیاز به نصب اجرا می‌شود.

📌 ویژگی‌های اصلی AppImage:
  • قابل حمل: می‌توانید آن را روی فلش مموری یا هر جایی کپی کنید.
  • بدون نصب: فقط کافی است فایل را اجرا کنید.
  • مستقل: روی همه توزیع‌های لینوکس کار می‌کند.
  • بدون تغییر در سیستم: هیچ فایلی در سیستم نصب نمی‌کند.

• نحوه اجرا

┌──(ya3in㉿kali)-[~/Downloads] └─$ chmod +x app.AppImage └─$ ./app.AppImage

توضیح: chmod +x فایل را قابل اجرا می‌کند، سپس با ./ آن را اجرا می‌کنیم.

⚠️ نکته مهم:

اگر خطای مربوط به FUSE دریافت کردید، باید بسته libfuse2 را نصب کنید: [citation:2]

┌──(ya3in㉿kali)-[~] └─$ sudo apt install libfuse2

• یکپارچه‌سازی با سیستم (اختیاری)

برای اینکه AppImage در منوی برنامه‌ها ظاهر شود، می‌توانید از ابزارهایی مانند appimage-install استفاده کنید. [citation:4]

┌──(ya3in㉿kali)-[~] └─$ appimage-install ~/Downloads/app.AppImage [?] Application name (for system menus) [App]:
[*] Name : App
[*] ID : app
[*] AppImage : /home/user/AppImages/app.AppImage
[*] Desktop : /home/user/.local/share/applications/app.desktop
[OK] Moved to: /home/user/AppImages/app.AppImage
[OK] Icon saved: /home/user/.local/share/icons/app.png
[OK] .desktop created

توضیح: این اسکریپت فایل AppImage را در پوشه ~/AppImages قرار می‌دهد، آیکون آن را استخراج می‌کند و یک فایل .desktop برای منوی برنامه‌ها ایجاد می‌کند. [citation:4]

▍ مقایسه Snap و AppImage

🔵 Snap

  • نصب: با snap install
  • به‌روزرسانی: خودکار در پس‌زمینه
  • ایمنی: محیط ایزوله (Sandbox)
  • فضا: حجم بالاتر (دارای运行时)
  • مناسب: برنامه‌های دائمی و طولانی‌مدت

🟠 AppImage

  • نصب: فقط دانلود و اجرا
  • به‌روزرسانی: دستی (دانلود نسخه جدید)
  • ایمنی: بدون محیط ایزوله (همانند سیستم)
  • فضا: حجم بالاتر (همه وابستگی‌ها داخل فایل)
  • مناسب: برنامه‌های قابل حمل، آزمایشی، بدون نیاز به نصب

▍ جدول مقایسه کامل

ویژگی Snap AppImage
نحوه نصب با مدیر بسته snap فقط دانلود و اجرا (بدون نصب)
به‌روزرسانی خودکار در پس‌زمینه [citation:6] دستی (دانلود نسخه جدید) [citation:6]
ایمنی محیط ایزوله (Sandbox) با AppArmor [citation:6] بدون محیط ایزوله [citation:6]
حجم فایل بزرگ (شامل运行时 Snap) بزرگ (همه وابستگی‌ها داخل فایل)
سرعت اجرا کندتر (احتیاج به استخراج) [citation:2] سریع (مشابه برنامه‌های بومی) [citation:2]
یکپارچه‌سازی خودکار در منوی برنامه‌ها نیاز به ابزار اضافی برای یکپارچه‌سازی
قابلیت برگشت ✅ بله (بازگشت به نسخه قبلی) ❌ خیر
مناسب برای برنامه‌های دائمی، سرورها، کاربران معمولی برنامه‌های قابل حمل، آزمایشی، کاربران پیشرفته

▍ کدام را انتخاب کنیم؟

✅ راهنمای انتخاب:
  • اگر به برنامه‌ای نیاز دارید که همیشه به‌روز باشد و امنیت بالا داشته باشد: از Snap استفاده کنید.
  • اگر می‌خواهید برنامه‌ای را بدون نصب و به‌صورت قابل حمل استفاده کنید: از AppImage استفاده کنید.
  • اگر برنامه‌ای را فقط یک بار می‌خواهید آزمایش کنید و نمی‌خواهید سیستم را تغییر دهید: AppImage بهترین گزینه است.
  • اگر برنامه‌ای مانند ادیتور یا مرورگر را هر روز استفاده می‌کنید: Snap یا روش سنتی با apt بهتر است. [citation:2]
💡 نکته مهم:

هر دو روش روی کالی لینوکس (که بر پایه دبیان است) به خوبی کار می‌کنند. برای نصب Snap، کافی است snapd را نصب کنید. برای AppImage، معمولاً نیازی به نصب نیست و فقط کافی است فایل را دانلود و اجرا کنید.